package com.icloud.article.boot.dao;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.icloud.article.boot.query.ArticleQuery;
import com.icloud.article.boot.vo.ArticleVo;
import com.icloud.article.boot.vo.StatisticsVo;
import com.icloud.common.database.model.Article;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 帖子表 Mapper 接口
 * </p>
 *
 * @author pujiulin
 * @since 0000-00-00
 */
public interface ArticleDao {


    /**
     * 分页查询
     * @param page
     * @param wrapper
     * @return
     */
    IPage<ArticleVo> page(@Param("page")Page<Article> page, @Param("ew") Wrapper<Article> wrapper);


    /**
     * app分页
     * @param page
     * @param query
     * @return
     */
    IPage<ArticleVo> appPage(@Param("page")Page<Article> page, @Param("query")ArticleQuery query);

    Long countMyTotal(@Param("query")ArticleQuery query);


    List<ArticleVo> appList(@Param("query")ArticleQuery query);


    /**
     * 列表查询
     * @param wrapper
     * @return
     */
    List<ArticleVo> list(@Param("ew") Wrapper<Article> wrapper);

    /**
     * 根据帖子id查询转发数量
     * @param wrapper
     * @return
     */
    List<StatisticsVo> queryForwardCountByArticle(@Param("ew") Wrapper<Article> wrapper);

}
